home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / gui / bgui11b.lha / include / libraries / bgui_macros.i < prev    next >
Encoding:
Text File  |  1995-01-26  |  46.6 KB  |  1,441 lines

  1.                 IFND    LIBRARIES_BGUI_MACROS_I
  2. LIBRARIES_BGUI_MACROS_I SET     1
  3. **
  4. **      $VER: libraries/bgui_macros.i 38.2 (16.1.95)
  5. **      bgui.library macros.
  6. **
  7. **      (C) Copyright 1993-1995 Jaba Development.
  8. **      (C) Copyright 1993-1995 Jan van den Baard.
  9. **          All Rights Reserved.
  10. **
  11.  
  12.                 IFND    LIBRARIES_BGUI_I
  13.                 include 'libraries/bgui.i'
  14.                 ENDC    ; LIBARIES_BGUI_I
  15.  
  16.                 IFND    LIBRARIES_BGUI_OFFSETS_I
  17.                 include 'libraries/bgui.i'
  18.                 ENDC    ; LIBRARIES_BGUI_OFFSETS_I
  19.  
  20.                 ;
  21.                 ;       STACK arg
  22.                 ;
  23.                 ;       If 'arg' is a valid argument this macro will
  24.                 ;       put it on the stack increasing the constant
  25.                 ;       'STACKSIZE' with 4. This macro is used by the
  26.                 ;       DOMETHOD macro below.
  27.                 ;
  28. STACK           MACRO
  29.                 IFNC    '\1',''
  30.                 move.l  \1,-(sp)
  31. STACKSIZE       SET     STACKSIZE+4
  32.                 ENDC
  33.                 ENDM
  34.  
  35.                 ;
  36.                 ;       DOMETHOD object,methodID[,...]
  37.                 ;
  38.                 ;       This macro invokes method 'methodID' on object 'object'.
  39.                 ;       Upto eight extra arguments may be passed to the macro.
  40.                 ;       This should be suffiecient for most methods.
  41.                 ;
  42. DOMETHOD        MACRO
  43.                 IFLT    NARG-2
  44.                 FAIL    'Need at least TWO parameters in the "DOMETHOD" macro!'
  45.                 MEXIT
  46.                 ENDC
  47. STACKSIZE       SET     0
  48.                 movem.l a0-a2,-(sp)             ; save regs
  49.                 STACK   \9
  50.                 STACK   \8
  51.                 STACK   \7
  52.                 STACK   \6
  53.                 STACK   \5
  54.                 STACK   \4
  55.                 STACK   \3
  56.                 STACK   \2
  57.                 move.l  \1,a2                   ; object in a2
  58.                 move.l  sp,a1                   ; msg in a1
  59.                 move.l  -4(a2),a0               ; class in a0
  60.                 pea     DOMETHOD\@(pc)          ; return address class dispatcher
  61.                 move.l  8(a0),-(sp)             ; stack dispatcher entry
  62.                 rts                             ; call dispatcher
  63. DOMETHOD\@      lea.l   STACKSIZE(sp),sp        ; align stack
  64.                 movem.l (sp)+,a0-a2             ; restore regs
  65.                 ENDM
  66.  
  67.                 ;
  68.                 ;       DOGADGETMETHOD object,win,req,methodID[,...]
  69.                 ;
  70.                 ;       This macro invokes method 'methodID' on object 'object'.
  71.                 ;       Upto six extra arguments may be passed to the macro.
  72.                 ;       This should be suffiecient for most methods. This call
  73.                 ;       uppon BGUI_DoGadgetMethodA so BGUI must be in a6!
  74.                 ;
  75. DOGADGETMETHOD  MACRO
  76.                 IFLT    NARG-4
  77.                 FAIL    'Need at least FOUR parameters in the "DOGADGETMETHOD" macro!'
  78.                 MEXIT
  79.                 ENDC
  80. STACKSIZE       SET     0
  81.                 movem.l a0-a3,-(sp)             ; save regs
  82.                 STACK   \9
  83.                 STACK   \8
  84.                 STACK   \7
  85.                 STACK   \6
  86.                 STACK   \5
  87.                 STACK   \4
  88.                 move.l  \1,a0                   ; object in a0
  89.                 move.l  \2,a1                   ; window in a1
  90.                 move.l  \3,a2                   ; requester in a2
  91.                 move.l  sp,a3                   ; msg in a3
  92.                 jsr     _LVOBGUI_DoGadgetMethodA(a6)
  93.                 lea.l   STACKSIZE(sp),sp        ; align stack
  94.                 movem.l (sp)+,a0-a3             ; restore regs
  95.                 ENDM
  96.  
  97.                 ;
  98.                 ;       INIT
  99.                 ;
  100.                 ;       This macro sets things up for a object creation
  101.                 ;       macro.
  102.                 ;
  103. INIT            MACRO
  104.                 movem.l d2/a2,-(sp)
  105.                 move.l  sp,a2                   ; save stack address
  106.                 move.l  #TAG_DONE,-(sp)
  107.                 ENDM
  108.  
  109.                 ;
  110.                 ;       EXIT
  111.                 ;
  112.                 ;       This macro sets things back to their original
  113.                 ;       state after an object creation.
  114.                 ;
  115. EXIT            MACRO
  116.                 move.l  a2,sp                   ; put pack stack address
  117.                 movem.l (sp)+,d2/a2
  118.                 ENDM
  119.  
  120.                 ;
  121.                 ;       SC arg
  122.                 ;
  123.                 ;       Put the argument of this macro on the stack
  124.                 ;       as a constant if it is a valid argument.
  125.                 ;
  126. SC              MACRO
  127.                 IFNC    '\1',''
  128.                 IFC     '\1','0'
  129.                 clr.l   -(sp)
  130.                 ELSEIF
  131.                 move.l  #\1,-(sp)
  132.                 ENDC
  133.                 ENDC
  134.                 ENDM
  135.  
  136.                 ;
  137.                 ;       SV arg
  138.                 ;
  139.                 ;       Put the argument of this macro on the stack
  140.                 ;       if it is a valid argument.
  141.                 ;
  142. SV              MACRO
  143.                 IFNC    '\1',''
  144.                 IFC     '\1','#0'
  145.                 clr.l   -(sp)
  146.                 ELSEIF
  147.                 move.l  \1,-(sp)
  148.                 ENDC
  149.                 ENDC
  150.                 ENDM
  151.  
  152.                 ;
  153.                 ;       PUTC arg1[,...,arg15]
  154.                 ;
  155.                 ;       Put upto 15 arguments as constants on the stack.
  156.                 ;
  157. PUTC            MACRO
  158.                 SC      \F
  159.                 SC      \E
  160.                 SC      \D
  161.                 SC      \C
  162.                 SC      \B
  163.                 SC      \A
  164.                 SC      \9
  165.                 SC      \8
  166.                 SC      \7
  167.                 SC      \6
  168.                 SC      \5
  169.                 SC      \4
  170.                 SC      \3
  171.                 SC      \2
  172.                 SC      \1
  173.                 ENDM
  174.  
  175.                 ;
  176.                 ;       PUTV arg1[,...,arg15]
  177.                 ;
  178.                 ;       Put upto 15 arguments on the stack.
  179.                 ;
  180. PUTV            MACRO
  181.                 SV      \F
  182.                 SV      \E
  183.                 SV      \D
  184.                 SV      \C
  185.                 SV      \B
  186.                 SV      \A
  187.                 SV      \9
  188.                 SV      \8
  189.                 SV      \7
  190.                 SV      \6
  191.                 SV      \5
  192.                 SV      \4
  193.                 SV      \3
  194.                 SV      \2
  195.                 SV      \1
  196.                 ENDM
  197.  
  198. ******************************************************************************
  199. *       General object creation macros.
  200. ******************************************************************************
  201.  
  202. INITOBJ         MACRO   ; type
  203.                 INIT
  204.                 moveq.l #\1,d2
  205.                 ENDM
  206.  
  207. HGroupObject    MACRO
  208.                 INITOBJ BGUI_GROUP_GADGET
  209.                 PUTC    GROUP_Inverted,1
  210.                 ENDM
  211.  
  212. VGroupObject    MACRO
  213.                 INITOBJ BGUI_GROUP_GADGET
  214.                 PUTC    GROUP_Style,GRSTYLE_VERTICAL,GROUP_Inverted,1
  215.                 ENDM
  216.  
  217. ButtonObject    MACRO
  218.                 INITOBJ BGUI_BUTTON_GADGET
  219.                 ENDM
  220.  
  221. ToggleObject    MACRO
  222.                 INITOBJ BGUI_BUTTON_GADGET
  223.                 PUTC    GA_ToggleSelect,1
  224.                 ENDM
  225.  
  226. CycleObject     MACRO
  227.                 INITOBJ BGUI_CYCLE_GADGET
  228.                 ENDM
  229.  
  230. CheckBoxObject  MACRO
  231.                 INITOBJ BGUI_CHECKBOX_GADGET
  232.                 ENDM
  233.  
  234. InfoObject      MACRO
  235.                 INITOBJ BGUI_INFO_GADGET
  236.                 ENDM
  237.  
  238. StringObject    MACRO
  239.                 INITOBJ BGUI_STRING_GADGET
  240.                 ENDM
  241.  
  242. PropObject      MACRO
  243.                 INITOBJ BGUI_PROP_GADGET
  244.                 ENDM
  245.  
  246. IndicatorObject MACRO
  247.                 INITOBJ BGUI_INDICATOR_GADGET
  248.                 ENDM
  249.  
  250. ProgressObject  MACRO
  251.                 INITOBJ BGUI_PROGRESS_GADGET
  252.                 ENDM
  253.  
  254. SliderObject    MACRO
  255.                 INITOBJ BGUI_SLIDER_GADGET
  256.                 ENDM
  257.  
  258. PageObject      MACRO
  259.                 INITOBJ BGUI_PAGE_GADGET
  260.                 PUTC    PAGE_Inverted,1
  261.                 ENDM
  262.  
  263. MxObject        MACRO
  264.                 INITOBJ BGUI_MX_GADGET
  265.                 ENDM
  266.  
  267. ListviewObject  MACRO
  268.                 INITOBJ BGUI_LISTVIEW_GADGET
  269.                 ENDM
  270.  
  271. ExternalObject  MACRO
  272.                 INITOBJ BGUI_EXTERNAL_GADGET
  273.                 PUTC    GA_Left,0,GA_Top,0,GA_Width,0,GA_Height,0
  274.                 ENDM
  275.  
  276. SeperatorObject MACRO
  277.                 INITOBJ BGUI_SEPERATOR_GADGET
  278.                 ENDM
  279.  
  280. WindowObject    MACRO
  281.                 INITOBJ BGUI_WINDOW_OBJECT
  282.                 ENDM
  283.  
  284. FileReqObject   MACRO
  285.                 INITOBJ BGUI_FILEREQ_OBJECT
  286.                 ENDM
  287.  
  288. CommodityObject MACRO
  289.                 INITOBJ BGUI_COMMODITY_OBJECT
  290.                 ENDM
  291.  
  292. EndObject       MACRO
  293.                 move.l  sp,a0
  294.                 move.l  d2,d0
  295.                 jsr     _LVOBGUI_NewObjectA(a6)
  296.                 EXIT
  297.                 ENDM
  298.  
  299. ******************************************************************************
  300. *       Label creation.
  301. ******************************************************************************
  302.  
  303. xLabel          MACRO   ; label
  304.                 PUTC    LAB_Label,\1
  305.                 ENDM
  306.  
  307. UScoreLabel     MACRO   ; label,uchar
  308.                 PUTC    LAB_Underscore,\2
  309.                 PUTC    LAB_Label,\1
  310.                 ENDM
  311.  
  312. Style           MACRO   ; style
  313.                 PUTC    LAB_Style,\1
  314.                 ENDM
  315.  
  316. Place           MACRO   ; place
  317.                 PUTC    LAB_Place,\1
  318.                 ENDM
  319.  
  320. ******************************************************************************
  321. *       Frames.
  322. ******************************************************************************
  323. ButtonFrame     MACRO
  324.                 PUTC    FRM_Type,FRTYPE_BUTTON
  325.                 ENDM
  326.  
  327. RidgeFrame      MACRO
  328.                 PUTC    FRM_Type,FRTYPE_RIDGE
  329.                 ENDM
  330.  
  331. DropBoxFrame    MACRO
  332.                 PUTC    FRM_Type,FRTYPE_DROPBOX
  333.                 ENDM
  334.  
  335. NeXTFrame       MACRO
  336.                 PUTC    FRM_Type,FRTYPE_NEXT
  337.                 ENDM
  338.  
  339. RadioFrame      MACRO
  340.                 PUTC    FRM_Type,FRTYPE_RADIOBUTTON
  341.                 ENDM
  342.  
  343. XenFrame        MACRO
  344.                 PUTC    FRM_Type,FRTYPE_XEN_BUTTON
  345.                 ENDM
  346.  
  347. FrameTitle      MACRO   ; title
  348.                 PUTC    FRM_Title,\1
  349.                 ENDM
  350.  
  351. ShineRaster     MACRO
  352.                 PUTC    FRM_BackFill,SHINE_RASTER
  353.                 ENDM
  354.  
  355. ShadowRaster    MACRO
  356.                 PUTC    FRM_BackFill,SHADOW_RASTER
  357.                 ENDM
  358.  
  359. ShineShadowRaster MACRO
  360.                 PUTC    FRM_BackFill,SHINE_SHADOW_RASTER
  361.                 ENDM
  362.  
  363. FillRaster      MACRO
  364.                 PUTC    FRM_BackFill,FILL_RASTER
  365.                 ENDM
  366.  
  367. ShineFillRaster MACRO
  368.                 PUTC    FRM_BackFill,SHINE_FILL_RASTER
  369.                 ENDM
  370.  
  371. ShadowFillRaster MACRO
  372.                 PUTC    FRM_BackFill,SHADOW_FILL_RASTER
  373.                 ENDM
  374.  
  375. ShineBlock      MACRO
  376.                 PUTC    FRM_BackFill,SHINE_BLOCK
  377.                 ENDM
  378.  
  379. ShadowBlock     MACRO
  380.                 PUTC    FRM_BackFill,SHADOW_BLOCK
  381.                 ENDM
  382.  
  383. ******************************************************************************
  384. *      Vector images.
  385. ******************************************************************************
  386.  
  387. GetPath         MACRO
  388.                 PUTC    VIT_BuiltIn,BUILTIN_GETPATH
  389.                 ENDM
  390.  
  391. GetFile         MACRO
  392.                 PUTC    VIT_BuiltIn,BUILTIN_GETFILE
  393.                 ENDM
  394.  
  395. CheckMark       MACRO
  396.                 PUTC    VIT_BuiltIn,BUILTIN_CHECKMARK
  397.                 ENDM
  398.  
  399. PopUp           MACRO
  400.                 PUTC    VIT_BuiltIn,BUILTIN_POPUP
  401.                 ENDM
  402.  
  403. ArrowUp         MACRO
  404.                 PUTC    VIT_BuiltIn,BUILTIN_ARROW_UP
  405.                 ENDM
  406.  
  407. ArrowDown       MACRO
  408.                 PUTC    VIT_BuiltIn,BUILTIN_ARROW_DOWN
  409.                 ENDM
  410.  
  411. ArrowLeft       MACRO
  412.                 PUTC    VIT_BuiltIn,BUILTIN_ARROW_LEFT
  413.                 ENDM
  414.  
  415. ArrowRight      MACRO
  416.                 PUTC    VIT_BuiltIn,BUILTIN_ARROW_RIGHT
  417.                 ENDM
  418.  
  419. ******************************************************************************
  420. *      Group class macros.
  421. ******************************************************************************
  422.  
  423. StartMember     MACRO
  424.                 ENDM
  425.  
  426. EndMember       MACRO   ; [macro1,arg1,macro2,arg2,macro3,...]
  427.                 clr.l   -(sp)
  428.                 clr.l   -(sp)
  429.                 \1      \2
  430.                 \3      \4
  431.                 \5      \6
  432.                 \7      \8
  433.                 \9      \A
  434.                 \B      \C
  435.                 \D      \E
  436.                 PUTV    #GROUP_Member,d0
  437.                 ENDM
  438.  
  439. Spacing         MACRO   ; spacing
  440.                 PUTC    GROUP_Spacing,\1
  441.                 ENDM
  442.  
  443. HOffset         MACRO   ; offset
  444.                 PUTC    GROUP_HorizOffset,\1
  445.                 ENDM
  446.  
  447. VOffset         MACRO   ; offset
  448.                 PUTC    GROUP_VertOffset,\1
  449.                 ENDM
  450.  
  451. LOffset         MACRO   ; offset
  452.                 PUTC    GROUP_LeftOffset,\1
  453.                 ENDM
  454.  
  455. ROffset         MACRO   ; offset
  456.                 PUTC    GROUP_RightOffset,\1
  457.                 ENDM
  458.  
  459. TOffset         MACRO   ; offset
  460.                 PUTC    GROUP_TopOffset,\1
  461.                 ENDM
  462.  
  463. BOffset         MACRO   ; offset
  464.                 PUTC    GROUP_BottomOffset,\1
  465.                 ENDM
  466.  
  467. VarSpace        MACRO   ; weight
  468.                 PUTC    GROUP_SpaceObject,\1
  469.                 ENDM
  470.  
  471. EqualWidth      MACRO
  472.                 PUTC    GROUP_EqualWidth,1
  473.                 ENDM
  474.  
  475. EqualHeight     MACRO
  476.                 PUTC    GROUP_EqualHeight,1
  477.                 ENDM
  478.  
  479. ******************************************************************************
  480. *      Layout macros.
  481. ******************************************************************************
  482.  
  483. FixMinWidth     MACRO
  484.                 PUTC    LGO_FixMinWidth,1
  485.                 ENDM
  486.  
  487. FixMinHeight    MACRO
  488.                 PUTC    LGO_FixMinHeight,1
  489.                 ENDM
  490.  
  491. Weight          MACRO   ; weight
  492.                 PUTC    LGO_Weight,\1
  493.                 ENDM
  494.  
  495. FixWidth        MACRO   ; width
  496.                 PUTC    LGO_FixWidth,\1
  497.                 ENDM
  498.  
  499. FixHeight       MACRO   ; height
  500.                 PUTC    LGO_FixHeight,\1
  501.                 ENDM
  502.  
  503. Align           MACRO
  504.                 PUTC    LGO_Align,1
  505.                 ENDM
  506.  
  507. FixMinSize      MACRO
  508.                 PUTC    LGO_FixMinWidth,1,LGO_FixMinHeight,1
  509.                 ENDM
  510.  
  511. FixSize         MACRO   ; width, height
  512.                 PUTC    LGO_FixWidth,\1,LGO_FixHeight,\2
  513.                 ENDM
  514.  
  515. NoAlign         MACRO
  516.                 PUTC    LGO_NoAlign,1
  517.                 ENDM
  518.  
  519. ******************************************************************************
  520. *      Page class macros.
  521. ******************************************************************************
  522.  
  523. PageMember      MACRO
  524.                 ENDM
  525.  
  526. EndPageMember   MACRO
  527.                 PUTV    #PAGE_Member,d0
  528.                 ENDM
  529.  
  530. ******************************************************************************
  531. *      Window class macros.
  532. ******************************************************************************
  533.  
  534. MasterGroup     MACRO
  535.                 ENDM
  536.  
  537. EndMaster       MACRO
  538.                 PUTV    #WINDOW_MasterGroup,d0
  539.                 ENDM
  540.  
  541. ******************************************************************************
  542. *       "Quick" button creation macros.
  543. ******************************************************************************
  544.  
  545. Button          MACRO   ; label, id
  546.                 ButtonObject
  547.                         PUTC    LAB_Label,\1
  548.                         PUTC    GA_ID,\2
  549.                         PUTC    FRM_Type,FRTYPE_BUTTON
  550.                 EndObject
  551.                 ENDM
  552.  
  553. KeyButton       MACRO   ; label, id
  554.                 ButtonObject
  555.                         PUTC    LAB_Underscore,"_"
  556.                         PUTC    LAB_Label,\1
  557.                         PUTC    GA_ID,\2
  558.                         PUTC    FRM_Type,FRTYPE_BUTTON
  559.                 EndObject
  560.                 ENDM
  561.  
  562. Toggle          MACRO   ; label, state, id
  563.                 ToggleObject
  564.                         PUTC    LAB_Label,\1
  565.                         PUTC    GA_ID,\3
  566.                         PUTC    GA_Selected,\2
  567.                         PUTC    FRM_Type,FRTYPE_BUTTON
  568.                 EndObject
  569.                 ENDM
  570.  
  571. KeyToggle       MACRO   ; label, state, id
  572.                 ToggleObject
  573.                         PUTC    LAB_Underscore,"_"
  574.                         PUTC    LAB_Label,\1
  575.                         PUTC    GA_ID,\3
  576.                         PUTC    GA_Selected,\2
  577.                         PUTC    FRM_Type,FRTYPE_BUTTON
  578.                 EndObject
  579.                 ENDM
  580.  
  581. XenButton       MACRO   ; label, id
  582.                 ButtonObject
  583.                         PUTC    LAB_Label,\1
  584.                         PUTC    GA_ID,\2
  585.                         PUTC    FRM_Type,FRTYPE_XEN_BUTTON
  586.                 EndObject
  587.                 ENDM
  588.  
  589. XenKeyButton    MACRO   ; label, id
  590.                 ButtonObject
  591.                         PUTC    LAB_Underscore,"_"
  592.                         PUTC    LAB_Label,\1
  593.                         PUTC    GA_ID,\2
  594.                         PUTC    FRM_Type,FRTYPE_XEN_BUTTON
  595.                 EndObject
  596.                 ENDM
  597.  
  598. XenToggle       MACRO   ; label, state, id
  599.                 ToggleObject
  600.                         PUTC    LAB_Label,\1
  601.                         PUTC    GA_ID,\3
  602.                         PUTC    GA_Selected,\2
  603.                         PUTC    FRM_Type,FRTYPE_XEN_BUTTON
  604.                 EndObject
  605.                 ENDM
  606.  
  607. XenKeyToggle    MACRO   ; label, state, id
  608.                 ToggleObject
  609.                         PUTC    LAB_Underscore,"_"
  610.                         PUTC    LAB_Label,\1
  611.                         PUTC    GA_ID,\3
  612.                         PUTC    GA_Selected,\2
  613.                         PUTC    FRM_Type,FRTYPE_XEN_BUTTON
  614.                 EndObject
  615.                 ENDM
  616.  
  617. ******************************************************************************
  618. *       "Quick" cycle creation macros.
  619. ******************************************************************************
  620.  
  621. Cycle           MACRO   ; label, labels, active, id
  622.                 CycleObject
  623.                         PUTC    LAB_Label,\1
  624.                         PUTC    GA_ID,\4
  625.                         PUTC    FRM_Type,FRTYPE_BUTTON
  626.                         PUTC    CYC_Active,\3
  627.                         PUTC    CYC_Labels,\2
  628.                 EndObject
  629.                 ENDM
  630.  
  631. KeyCycle        MACRO   ; label, labels, active, id
  632.                 CycleObject
  633.                         PUTC    LAB_Underscore,"_"
  634.                         PUTC    LAB_Label,\1
  635.                         PUTC    GA_ID,\4
  636.                         PUTC    FRM_Type,FRTYPE_BUTTON
  637.                         PUTC    CYC_Active,\3
  638.                         PUTC    CYC_Labels,\2
  639.                 EndObject
  640.                 ENDM
  641.  
  642. XenCycle        MACRO   ; label, labels, active, id
  643.                 CycleObject
  644.                         PUTC    LAB_Label,\1
  645.                         PUTC    GA_ID,\4
  646.                         PUTC    FRM_Type,FRTYPE_XEN_BUTTON
  647.                         PUTC    CYC_Active,\3
  648.                         PUTC    CYC_Labels,\2
  649.                 EndObject
  650.                 ENDM
  651.  
  652. XenKeyCycle     MACRO   ; label, labels, active, id
  653.                 CycleObject
  654.                         PUTC    LAB_Underscore,"_"
  655.                         PUTC    LAB_Label,\1
  656.                         PUTC    GA_ID,\4
  657.                         PUTC    FRM_Type,FRTYPE_XEN_BUTTON
  658.                         PUTC    CYC_Active,\3
  659.                         PUTC    CYC_Labels,\2
  660.                 EndObject
  661.                 ENDM
  662.  
  663. PopCycle        MACRO   ; label, labels, active, id
  664.                 CycleObject
  665.                         PUTC    LAB_Label,\1
  666.                         PUTC    GA_ID,\4
  667.                         PUTC    FRM_Type,FRTYPE_BUTTON
  668.                         PUTC    CYC_Active,\3
  669.                         PUTC    CYC_Labels,\2
  670.                         PUTC    CYC_Popup,1
  671.                 EndObject
  672.                 ENDM
  673.  
  674. KeyPopCycle     MACRO   ; label, labels, active, id
  675.                 CycleObject
  676.                         PUTC    LAB_Underscore,"_"
  677.                         PUTC    LAB_Label,\1
  678.                         PUTC    GA_ID,\4
  679.                         PUTC    FRM_Type,FRTYPE_BUTTON
  680.                         PUTC    CYC_Active,\3
  681.                         PUTC    CYC_Labels,\2
  682.                         PUTC    CYC_Popup,1
  683.                 EndObject
  684.                 ENDM
  685.  
  686. XenPopCycle     MACRO   ; label, labels, active, id
  687.                 CycleObject
  688.                         PUTC    LAB_Label,\1
  689.                         PUTC    GA_ID,\4
  690.                         PUTC    FRM_Type,FRTYPE_XEN_BUTTON
  691.                         PUTC    CYC_Active,\3
  692.                         PUTC    CYC_Labels,\2
  693.                         PUTC    CYC_Popup,1
  694.                 EndObject
  695.                 ENDM
  696.  
  697. XenKeyPopCycle  MACRO   ; label, labels, active, id
  698.                 CycleObject
  699.                         PUTC    LAB_Underscore,"_"
  700.                         PUTC    LAB_Label,\1
  701.                         PUTC    GA_ID,\4
  702.                         PUTC    FRM_Type,FRTYPE_XEN_BUTTON
  703.                         PUTC    CYC_Active,\3
  704.                         PUTC    CYC_Labels,\2
  705.                         PUTC    CYC_Popup,1
  706.                 EndObject
  707.                 ENDM
  708.  
  709. ******************************************************************************
  710. *       "Quick" checkbox creation macros.
  711. ******************************************************************************
  712.  
  713. CheckBox        MACRO   ; label, state, id
  714.                 CheckBoxObject
  715.                         PUTC    LAB_Label,\1
  716.                         PUTC    GA_ID,\3
  717.                         PUTC    FRM_Type,FRTYPE_BUTTON
  718.                         PUTC    FRM_EdgesOnly,1
  719.                         PUTC    GA_Selected,\2
  720.                 EndObject
  721.                 ENDM
  722.  
  723. KeyCheckBox     MACRO   ; label, state, id
  724.                 CheckBoxObject
  725.                         PUTC    LAB_Underscore,"_"
  726.                         PUTC    LAB_Label,\1
  727.                         PUTC    GA_ID,\3
  728.                         PUTC    FRM_Type,FRTYPE_BUTTON
  729.                         PUTC    FRM_EdgesOnly,1
  730.                         PUTC    GA_Selected,\2
  731.                 EndObject
  732.                 ENDM
  733.  
  734. XenCheckBox     MACRO   ; label, state, id
  735.                 CheckBoxObject
  736.                         PUTC    LAB_Label,\1
  737.                         PUTC    GA_ID,\3
  738.                         PUTC    FRM_Type,FRTYPE_XEN_BUTTON
  739.                         PUTC    FRM_EdgesOnly,1
  740.                         PUTC    GA_Selected,\2
  741.                 EndObject
  742.                 ENDM
  743.  
  744. XenKeyCheckBox  MACRO   ; label, state, id
  745.                 CheckBoxObject
  746.                         PUTC    LAB_Underscore,"_"
  747.                         PUTC    LAB_Label,\1
  748.                         PUTC    GA_ID,\3
  749.                         PUTC    FRM_Type,FRTYPE_XEN_BUTTON
  750.                         PUTC    FRM_EdgesOnly,1
  751.                         PUTC    GA_Selected,\2
  752.                 EndObject
  753.                 ENDM
  754.  
  755. ******************************************************************************
  756. *       "Quick" info object creation macros.
  757. ******************************************************************************
  758.  
  759. InfoFixed       MACRO   ; label, text, args, numlines
  760.                 InfoObject
  761.                         PUTC    LAB_Label,\1
  762.                         PUTC    FRM_Type,FRTYPE_BUTTON
  763.                         PUTC    FRM_Recessed,1
  764.                         PUTC    INFO_TextFormat,\2
  765.                         PUTC    INFO_Args,\3
  766.                         PUTC    INFO_MinLines,\4
  767.                         PUTC    INFO_FixTextWidth,1
  768.                 EndObject
  769.                 ENDM
  770.  
  771. InfoObj         MACRO   ; label, text, args, numlines
  772.                 InfoObject
  773.                         PUTC    LAB_Label,\1
  774.                         PUTC    FRM_Type,FRTYPE_BUTTON
  775.                         PUTC    FRM_Recessed,1
  776.                         PUTC    INFO_TextFormat,\2
  777.                         PUTC    INFO_Args,\3
  778.                         PUTC    INFO_MinLines,\4
  779.                 EndObject
  780.                 ENDM
  781.  
  782. ******************************************************************************
  783. *       "Quick" string/integer creation macros.
  784. ******************************************************************************
  785.  
  786. String          MACRO   ; label, contents, maxchars, id
  787.                 StringObject
  788.                         PUTC    LAB_Label,\1
  789.                         PUTC    FRM_Type,FRTYPE_RIDGE
  790.                         PUTC    GA_ID,\4
  791.                         PUTC    STRINGA_TextVal,\2
  792.                         PUTC    STRINGA_MaxChars,\3
  793.                 EndObject
  794.                 ENDM
  795.  
  796. KeyString       MACRO   ; label, contents, maxchars, id
  797.                 StringObject
  798.                         PUTC    LAB_Underscore,"_"
  799.                         PUTC    LAB_Label,\1
  800.                         PUTC    FRM_Type,FRTYPE_RIDGE
  801.                         PUTC    GA_ID,\4
  802.                         PUTC    STRINGA_TextVal,\2
  803.                         PUTC    STRINGA_MaxChars,\3
  804.                 EndObject
  805.                 ENDM
  806.  
  807. TabString       MACRO   ; label, contents, maxchars, id
  808.                 StringObject
  809.                         PUTC    LAB_Label,\1
  810.                         PUTC    FRM_Type,FRTYPE_RIDGE
  811.                         PUTC    GA_ID,\4
  812.                         PUTC    GA_TabCycle,1
  813.                         PUTC    STRINGA_TextVal,\2
  814.                         PUTC    STRINGA_MaxChars,\3
  815.                 EndObject
  816.                 ENDM
  817.  
  818. TabKeyString    MACRO   ; label, contents, maxchars, id
  819.                 StringObject
  820.                         PUTC    LAB_Underscore,"_"
  821.                         PUTC    LAB_Label,\1
  822.                         PUTC    FRM_Type,FRTYPE_RIDGE
  823.                         PUTC    GA_ID,\4
  824.                         PUTC    GA_TabCycle,1
  825.                         PUTC    STRINGA_TextVal,\2
  826.                         PUTC    STRINGA_MaxChars,\3
  827.                 EndObject
  828.                 ENDM
  829.  
  830. Integer         MACRO   ; label, contents, maxchars, id
  831.                 StringObject
  832.                         PUTC    LAB_Label,\1
  833.                         PUTC    FRM_Type,FRTYPE_RIDGE
  834.                         PUTC    GA_ID,\4
  835.                         PUTC    STRINGA_LongVal,\2
  836.                         PUTC    STRINGA_MaxChars,\3
  837.                 EndObject
  838.                 ENDM
  839.  
  840. KeyInteger      MACRO   ; label, contents, maxchars, id
  841.                 StringObject
  842.                         PUTC    LAB_Underscore,"_"
  843.                         PUTC    LAB_Label,\1
  844.                         PUTC    FRM_Type,FRTYPE_RIDGE
  845.                         PUTC    GA_ID,\4
  846.                         PUTC    STRINGA_LongVal,\2
  847.                         PUTC    STRINGA_MaxChars,\3
  848.                 EndObject
  849.                 ENDM
  850.  
  851. TabInteger      MACRO   ; label, contents, maxchars, id
  852.                 StringObject
  853.                         PUTC    LAB_Label,\1
  854.                         PUTC    FRM_Type,FRTYPE_RIDGE
  855.                         PUTC    GA_ID,\4
  856.                         PUTC    GA_TabCycle,1
  857.                         PUTC    STRINGA_LongVal,\2
  858.                         PUTC    STRINGA_MaxChars,\3
  859.                 EndObject
  860.                 ENDM
  861.  
  862. TabKeyInteger   MACRO   ; label, contents, maxchars, id
  863.                 StringObject
  864.                         PUTC    LAB_Underscore,"_"
  865.                         PUTC    LAB_Label,\1
  866.                         PUTC    FRM_Type,FRTYPE_RIDGE
  867.                         PUTC    GA_ID,\4
  868.                         PUTC    GA_TabCycle,1
  869.                         PUTC    STRINGA_LongVal,\2
  870.                         PUTC    STRINGA_MaxChars,\3
  871.                 EndObject
  872.                 ENDM
  873.  
  874. ******************************************************************************
  875. *       "Quick" scroller creation macros.
  876. ******************************************************************************
  877.  
  878. HorizScroller   MACRO   ; label, top, total, visible, id
  879.                 PropObject
  880.                         PUTC    LAB_Label,\1
  881.                         PUTC    PGA_Top,\2
  882.                         PUTC    PGA_Total,\3
  883.                         PUTC    PGA_Visible,\4
  884.                         PUTC    PGA_Freedom,FREEHORIZ
  885.                         PUTC    GA_ID,\5
  886.                         PUTC    PGA_Arrows,1
  887.                 EndObject
  888.                 ENDM
  889.  
  890. VertScroller    MACRO   ; label, top, total, visible, id
  891.                 PropObject
  892.                         PUTC    LAB_Label,\1
  893.                         PUTC    PGA_Top,\2
  894.                         PUTC    PGA_Total,\3
  895.                         PUTC    PGA_Visible,\4
  896.                         PUTC    GA_ID,\5
  897.                         PUTC    PGA_Arrows,1
  898.                 EndObject
  899.                 ENDM
  900.  
  901. KeyHorizScroller MACRO   ; label, top, total, visible, id
  902.                 PropObject
  903.                         PUTC    LAB_Underscore,"_"
  904.                         PUTC    LAB_Label,\1
  905.                         PUTC    PGA_Top,\2
  906.                         PUTC    PGA_Total,\3
  907.                         PUTC    PGA_Visible,\4
  908.                         PUTC    PGA_Freedom,FREEHORIZ
  909.                         PUTC    GA_ID,\5
  910.                         PUTC    PGA_Arrows,1
  911.                 EndObject
  912.                 ENDM
  913.  
  914. KeyVertScroller MACRO   ; label, top, total, visible, id
  915.                 PropObject
  916.                         PUTC    LAB_Underscore,"_"
  917.                         PUTC    LAB_Label,\1
  918.                         PUTC    PGA_Top,\2
  919.                         PUTC    PGA_Total,\3
  920.                         PUTC    PGA_Visible,\4
  921.                         PUTC    GA_ID,\5
  922.                         PUTC    PGA_Arrows,1
  923.                 EndObject
  924.                 ENDM
  925.  
  926. ******************************************************************************
  927. *       "Quick" indicator creation macros.
  928. ******************************************************************************
  929.  
  930. Indicator       MACRO   ; min, max, level, just
  931.                 IndicatorObject
  932.                         PUTC    INDIC_Min,\1
  933.                         PUTC    INDIC_Max,\2
  934.                         PUTC    INDIC_Level,\3
  935.                         PUTC    INDIC_Justification,\4
  936.                 EndObject
  937.                 ENDM
  938.  
  939. IndicatorFormat MACRO   ; min, max, level, just, fstring
  940.                 IndicatorObject
  941.                         PUTC    INDIC_Min,\1
  942.                         PUTC    INDIC_Max,\2
  943.                         PUTC    INDIC_Level,\3
  944.                         PUTC    INDIC_Justification,\4
  945.                         PUTC    INDIC_FormatString,\5
  946.                 EndObject
  947.                 ENDM
  948.  
  949. ******************************************************************************
  950. *       "Quick" progress creation macros.
  951. ******************************************************************************
  952.  
  953. HorizProgress   MACRO   ; label, min, max, done
  954.                 ProgressObject
  955.                         PUTC    LAB_Label,\1
  956.                         PUTC    FRM_Type,FRTYPE_BUTTON
  957.                         PUTC    FRM_Recessed,1
  958.                         PUTC    PROGRESS_Min,\2
  959.                         PUTC    PROGRESS_Max,\3
  960.                         PUTC    PROGRESS_Done,\4
  961.                 EndObject
  962.                 ENDM
  963.  
  964. VertProgress   MACRO   ; label, min, max, done
  965.                 ProgressObject
  966.                         PUTC    LAB_Label,\1
  967.                         PUTC    FRM_Type,FRTYPE_BUTTON
  968.                         PUTC    FRM_Recessed,1
  969.                         PUTC    PROGRESS_Min,\2
  970.                         PUTC    PROGRESS_Max,\3
  971.                         PUTC    PROGRESS_Done,\4
  972.                         PUTC    PROGRESS_Vertical,1
  973.                 EndObject
  974.                 ENDM
  975.  
  976. ******************************************************************************
  977. *       "Quick" slider creation macros.
  978. ******************************************************************************
  979.  
  980. HorizSlider     MACRO   ; label, min, max, level, id
  981.                 SliderObject
  982.                         PUTC    LAB_Label,\1
  983.                         PUTC    SLIDER_Min,\2
  984.                         PUTC    SLIDER_Max,\3
  985.                         PUTC    SLIDER_Level,\4
  986.                         PUTC    GA_ID,\5
  987.                 EndObject
  988.                 ENDM
  989.  
  990. VertSlider      MACRO   ; label, min, max, level, id
  991.                 SliderObject
  992.                         PUTC    LAB_Label,\1
  993.                         PUTC    SLIDER_Min,\2
  994.                         PUTC    SLIDER_Max,\3
  995.                         PUTC    SLIDER_Level,\4
  996.                         PUTC    PGA_Freedom,FREEVERT
  997.                         PUTC    GA_ID,\5
  998.                 EndObject
  999.                 ENDM
  1000.  
  1001. KeyHorizSlider  MACRO   ; label, min, max, level, id
  1002.                 SliderObject
  1003.                         PUTC    LAB_Underscore,"_"
  1004.                         PUTC    LAB_Label,\1
  1005.                         PUTC    SLIDER_Min,\2
  1006.                         PUTC    SLIDER_Max,\3
  1007.                         PUTC    SLIDER_Level,\4
  1008.                         PUTC    GA_ID,\5
  1009.                 EndObject
  1010.                 ENDM
  1011.  
  1012. KeyVertSlider   MACRO   ; label, min, max, level, id
  1013.                 SliderObject
  1014.                         PUTC    LAB_Underscore,"_"
  1015.                         PUTC    LAB_Label,\1
  1016.                         PUTC    SLIDER_Min,\2
  1017.                         PUTC    SLIDER_Max,\3
  1018.                         PUTC    SLIDER_Level,\4
  1019.                         PUTC    PGA_Freedom,FREEVERT
  1020.                         PUTC    GA_ID,\5
  1021.                 EndObject
  1022.                 ENDM
  1023.  
  1024. ******************************************************************************
  1025. *       "Quick" mx creation macros.
  1026. ******************************************************************************
  1027.  
  1028. RightMx         MACRO   ; label, labels, active, id
  1029.                 MxObject
  1030.                         PUTC    GROUP_Style,GRSTYLE_VERTICAL
  1031.                         PUTC    LAB_Label,\1
  1032.                         PUTC    MX_Labels,\2
  1033.                         PUTC    MX_Active,\3
  1034.                         PUTC    GA_ID,\4
  1035.                 EndObject
  1036.                 ENDM
  1037.  
  1038. LeftMx          MACRO   ; label, labels, active, id
  1039.                 MxObject
  1040.                         PUTC    GROUP_Style,GRSTYLE_VERTICAL
  1041.                         PUTC    LAB_Label,\1
  1042.                         PUTC    MX_Labels,\2
  1043.                         PUTC    MX_Active,\3
  1044.                         PUTC    MX_LabelPlace,PLACE_LEFT
  1045.                         PUTC    GA_ID,\4
  1046.                 EndObject
  1047.                 ENDM
  1048.  
  1049. RightMxKey      MACRO   ; label, labels, active, id
  1050.                 MxObject
  1051.                         PUTC    GROUP_Style,GRSTYLE_VERTICAL
  1052.                         PUTC    LAB_Underscore,"_"
  1053.                         PUTC    LAB_Label,\1
  1054.                         PUTC    MX_Labels,\2
  1055.                         PUTC    MX_Active,\3
  1056.                         PUTC    GA_ID,\4
  1057.                 EndObject
  1058.                 ENDM
  1059.  
  1060. LeftMxKey       MACRO   ; label, labels, active, id
  1061.                 MxObject
  1062.                         PUTC    GROUP_Style,GRSTYLE_VERTICAL
  1063.                         PUTC    LAB_Underscore,"_"
  1064.                         PUTC    LAB_Label,\1
  1065.                         PUTC    MX_Labels,\2
  1066.                         PUTC    MX_Active,\3
  1067.                         PUTC    MX_LabelPlace,PLACE_LEFT
  1068.                         PUTC    GA_ID,\4
  1069.                 EndObject
  1070.                 ENDM
  1071.  
  1072. Tabs            MACRO   ; label, labels, active, id
  1073.                 MxObject
  1074.                         PUTC    LAB_Label,\1
  1075.                         PUTC    MX_TabsObject,1
  1076.                         PUTC    MX_Labels,\2
  1077.                         PUTC    MX_Active,\3
  1078.                         PUTC    GA_ID,\4
  1079.                 EndObject
  1080.                 ENDM
  1081.  
  1082. TabsKey         MACRO   ; label, labels, active, id
  1083.                 MxObject
  1084.                         PUTC    LAB_Underscore,"_"
  1085.                         PUTC    LAB_Label,\1
  1086.                         PUTC    MX_TabsObject,1
  1087.                         PUTC    MX_Labels,\2
  1088.                         PUTC    MX_Active,\3
  1089.                         PUTC    GA_ID,\4
  1090.                 EndObject
  1091.                 ENDM
  1092.  
  1093. TabsEqual       MACRO   ; label, labels, active, id
  1094.                 MxObject
  1095.                         PUTC    GROUP_EqualWidth,1
  1096.                         PUTC    LAB_Label,\1
  1097.                         PUTC    MX_TabsObject,1
  1098.                         PUTC    MX_Labels,\2
  1099.                         PUTC    MX_Active,\3
  1100.                         PUTC    GA_ID,\4
  1101.                 EndObject
  1102.                 ENDM
  1103.  
  1104. TabsEqualKey    MACRO   ; label, labels, active, id
  1105.                 MxObject
  1106.                         PUTC    GROUP_EqualWidth,1
  1107.                         PUTC    LAB_Underscore,"_"
  1108.                         PUTC    LAB_Label,\1
  1109.                         PUTC    MX_TabsObject,1
  1110.                         PUTC    MX_Labels,\2
  1111.                         PUTC    MX_Active,\3
  1112.                         PUTC    GA_ID,\4
  1113.                 EndObject
  1114.                 ENDM
  1115.  
  1116. ******************************************************************************
  1117. *       "Quick" listview creation macros.
  1118. ******************************************************************************
  1119.  
  1120. StrListview     MACRO   ; label, strings, id
  1121.                 ListviewObject
  1122.                         PUTC    LAB_Label,\1
  1123.                         PUTC    GA_ID,\3
  1124.                         PUTC    LISTV_EntryArray,\2
  1125.                 EndObject
  1126.                 ENDM
  1127.  
  1128. StrListviewSorted MACRO   ; label, strings, id
  1129.                 ListviewObject
  1130.                         PUTC    LAB_Label,\1
  1131.                         PUTC    GA_ID,\3
  1132.                         PUTC    LISTV_EntryArray,\2
  1133.                         PUTC    LISTV_SortEntryArray,1
  1134.                 EndObject
  1135.                 ENDM
  1136.  
  1137. ReadStrListview MACRO   ; label, strings
  1138.                 ListviewObject
  1139.                         PUTC    LAB_Label,\1
  1140.                         PUTC    LISTV_EntryArray,\2
  1141.                         PUTC    LISTV_ReadOnly,1
  1142.                 EndObject
  1143.                 ENDM
  1144.  
  1145. ReadStrListviewSorted MACRO   ; label, strings
  1146.                 ListviewObject
  1147.                         PUTC    LAB_Label,\1
  1148.                         PUTC    LISTV_EntryArray,\2
  1149.                         PUTC    LISTV_SortEntryArray,1
  1150.                         PUTC    LISTV_ReadOnly,1
  1151.                 EndObject
  1152.                 ENDM
  1153.  
  1154. MultiStrListview MACRO   ; label, strings, id
  1155.                 ListviewObject
  1156.                         PUTC    LAB_Label,\1
  1157.                         PUTC    GA_ID,\3
  1158.                         PUTC    LISTV_EntryArray,\2
  1159.                         PUTC    LISTV_MultiSelect,1
  1160.                 EndObject
  1161.                 ENDM
  1162.  
  1163. MultiStrListviewSorted MACRO   ; label, strings, id
  1164.                 ListviewObject
  1165.                         PUTC    LAB_Label,\1
  1166.                         PUTC    GA_ID,\3
  1167.                         PUTC    LISTV_EntryArray,\2
  1168.                         PUTC    LISTV_SortEntryArray,1
  1169.                         PUTC    LISTV_MultiSelect,1
  1170.                 EndObject
  1171.                 ENDM
  1172.  
  1173. ******************************************************************************
  1174. *       "Quick" seperator bar creation macros.
  1175. ******************************************************************************
  1176.  
  1177. VertSeperator   MACRO
  1178.                 SeperatorObject
  1179.                 EndObject
  1180.                 ENDM
  1181.  
  1182. VertThinSeperator MACRO
  1183.                 SeperatorObject
  1184.                         PUTC    SEP_Thin,1
  1185.                 EndObject
  1186.                 ENDM
  1187.  
  1188. HorizSeperator  MACRO
  1189.                 SeperatorObject
  1190.                         PUTC    SEP_Horiz,1
  1191.                 EndObject
  1192.                 ENDM
  1193.  
  1194. TitleSeperator  MACRO   ; title
  1195.                 SeperatorObject
  1196.                         PUTC    SEP_Horiz,1
  1197.                         PUTC    SEP_Title,\1
  1198.                 EndObject
  1199.                 ENDM
  1200.  
  1201. HTitleSeperator MACRO   ; title
  1202.                 SeperatorObject
  1203.                         PUTC    SEP_Horiz,1
  1204.                         PUTC    SEP_Title,\1
  1205.                         PUTC    SEP_Highlight,1
  1206.                 EndObject
  1207.                 ENDM
  1208.  
  1209. CTitleSeperator MACRO   ; title
  1210.                 SeperatorObject
  1211.                         PUTC    SEP_Horiz,1
  1212.                         PUTC    SEP_Title,\1
  1213.                         PUTC    SEP_CenterTitle,1
  1214.                 EndObject
  1215.                 ENDM
  1216.  
  1217. CHTitleSeperator MACRO   ; title
  1218.                 SeperatorObject
  1219.                         PUTC    SEP_Horiz,1
  1220.                         PUTC    SEP_Title,\1
  1221.                         PUTC    SEP_Highlight,1
  1222.                         PUTC    SEP_CenterTitle,1
  1223.                 EndObject
  1224.                 ENDM
  1225.  
  1226. ******************************************************************************
  1227. *       Base class method macros.
  1228. ******************************************************************************
  1229.  
  1230. AddMap          MACRO   ; object, target, map
  1231.                 DOMETHOD \1,#BASE_ADDMAP,\2,\3
  1232.                 ENDM
  1233.  
  1234. AddCondit       MACRO   ; object, target, ttag, tdat, ftag, fdat, stag, sdat
  1235.                 DOMETHOD \1,#BASE_ADDCONDITIONAL,\2,\3,\4,\5,\6,\7,\8
  1236.                 ENDM
  1237.  
  1238. AddHook         MACRO   ; object, hook
  1239.                 DOMETHOD \1,#BASE_ADDHOOK,\2
  1240.                 ENDM
  1241.  
  1242. RemMap          MACRO   ; object, target
  1243.                 DOMETHOD \1,#BASE_REMMAP,\2
  1244.                 ENDM
  1245.  
  1246. RemCondit       MACRO   ; object, target
  1247.                 DOMETHOD \1,#BASE_REMCONDITIONAL,\2
  1248.                 ENDM
  1249.  
  1250. RemHook         MACRO   ; object, hook
  1251.                 DOMETHOD \1,#BASE_REMHOOK,\2
  1252.                 ENDM
  1253.  
  1254. ******************************************************************************
  1255. *       Listview class method macros.
  1256. ******************************************************************************
  1257.  
  1258.                 ** Requires BGUIBase in A6!
  1259. AddEntry        MACRO   ; window, object, entry, how
  1260.                 DOGADGETMETHOD \2,\1,0,#LVM_ADDSINGLE,0,\3,\4,0
  1261.                 ENDM
  1262.  
  1263.                 ** Requires BGUIBase in A6!
  1264. AddEntryVisible MACRO   ; window, object, entry, how
  1265.                 DOGADGETMETHOD \2,\1,0,#LVM_ADDSINGLE,0,\3,\4,#LVASF_MAKEVISIBLE
  1266.                 ENDM
  1267.  
  1268.                 ** Requires BGUIBase in A6!
  1269. AddEntrySelect  MACRO   ; window, object, entry, how
  1270.                 DOGADGETMETHOD \2,\1,0,#LVM_ADDSINGLE,0,\3,\4,#LVASF_SELECT
  1271.                 ENDM
  1272.  
  1273.                 ** Requires BGUIBase in A6!
  1274. ClearList       MACRO   ; window object
  1275.                 DOGADGETMETHOD \2,\1,0,#LVM_CLEAR,0
  1276.                 ENDM
  1277.  
  1278. FirstEntry      MACRO   ; object
  1279.                 DOMETHOD \1,#LVM_FIRSTENTRY,0,0
  1280.                 ENDM
  1281.  
  1282. FirstSelected   MACRO   ; object
  1283.                 DOMETHOD \1,#LVM_FIRSTENTRY,0,#LVGEF_SELECTED
  1284.                 ENDM
  1285.  
  1286. LastEntry       MACRO   ; object
  1287.                 DOMETHOD \1,#LVM_LASTENTRY,0,0
  1288.                 ENDM
  1289.  
  1290. LastSelected    MACRO   ; object
  1291.                 DOMETHOD \1,#LVM_LASTENTRY,0,#LVGEF_SELECTED
  1292.                 ENDM
  1293.  
  1294. NextEntry       MACRO   ; object, last
  1295.                 DOMETHOD \1,#LVM_NEXTENTRY,\2,0
  1296.                 ENDM
  1297.  
  1298. NextSelected    MACRO   ; object, last
  1299.                 DOMETHOD \1,#LVM_NEXTENTRY,\2,#LVGEF_SELECTED
  1300.                 ENDM
  1301.  
  1302. PrevEntry       MACRO   ; object, last
  1303.                 DOMETHOD \1,#LVM_PREVENTRY,\2,0
  1304.                 ENDM
  1305.  
  1306. PrevSelected    MACRO   ; object, last
  1307.                 DOMETHOD \1,#LVM_PREVENTRY,\2,#LVGEF_SELECTED
  1308.                 ENDM
  1309.  
  1310. RemoveEntry     MACRO   ; object, entry
  1311.                 DOMETHOD \1,#LVM_REMENTRY,0,\2
  1312.                 ENDM
  1313.  
  1314.                 ** Requires BGUIBase in A6!
  1315. RemoveEntryVisible MACRO ; window, object, entry
  1316.                 DOGADGETMETHOD \2,\1,0,#LVM_REMENTRY,0,\3
  1317.                 ENDM
  1318.  
  1319.                 ** Requires BGUIBase in A6!
  1320. RefreshList     MACRO   ; window, object
  1321.                 DOGADGETMETHOD \2,\1,0,#LVM_REFRESH,0
  1322.                 ENDM
  1323.  
  1324.                 ** Requires BGUIBase in A6!
  1325. SortList        MACRO   ; window, object
  1326.                 DOGADGETMETHOD \2,\1,0,#LVM_SORT,0
  1327.                 ENDM
  1328.  
  1329. LockList        MACRO   ; object
  1330.                 DOMETHOD \1,#LVM_LOCKLIST,0
  1331.                 ENDM
  1332.  
  1333.                 ** Requires BGUIBase in A6!
  1334. UnlockList      MACRO   ; window, object
  1335.                 DOGADGETMETHOD \2,\1,0,#LVM_UNLOCKLIST,0
  1336.                 ENDM
  1337.  
  1338.                 ** Requires BGUIBase in A6!
  1339. MoveEntry       MACRO   ; window, object, entry, dir
  1340.                 DOGADGETMETHOD \2,\1,0,#LVM_MOVE,0,\3,\4
  1341.                 ENDM
  1342.  
  1343.                 ** Requires BGUIBase in A6!
  1344. MoveSelectedEntry MACRO ; window, object, dir
  1345.                 DOGADGETMETHOD \2,\1,0,#LVM_MOVE,0,0,\3
  1346.                 ENDM
  1347.  
  1348. ******************************************************************************
  1349. *       Window class method macros.
  1350. ******************************************************************************
  1351.  
  1352. GadgetKey       MACRO   ; wobj, gobj, key
  1353.                 DOMETHOD \1,#WM_GADGETKEY,0,\2,\3
  1354.                 ENDM
  1355.  
  1356. xWindowOpen     MACRO   ; wobj
  1357.                 DOMETHOD \1,#WM_OPEN
  1358.                 ENDM
  1359.  
  1360. WindowClose     MACRO   ; wobj
  1361.                 DOMETHOD \1,#WM_CLOSE
  1362.                 ENDM
  1363.  
  1364. WindowBusy      MACRO   ; wobj
  1365.                 DOMETHOD \1,#WM_SLEEP
  1366.                 ENDM
  1367.  
  1368. WindowReady     MACRO   ; wobj
  1369.                 DOMETHOD \1,#WM_WAKEUP
  1370.                 ENDM
  1371.  
  1372. HandleEvent     MACRO   ; wobj
  1373.                 DOMETHOD \1,#WM_HANDLEIDCMP
  1374.                 ENDM
  1375.  
  1376. DisableMenu     MACRO   ; wobj, id, set
  1377.                 DOMETHOD \1,#WM_DISABLEMENU,\2,\3
  1378.                 ENDM
  1379.  
  1380. CheckItem       MACRO   ; wobj, id, set
  1381.                 DOMETHOD \1,#WM_CHECKITEM,\2,\3
  1382.                 ENDM
  1383.  
  1384. MenuDisabled    MACRO   ; wobj, id
  1385.                 DOMETHOD \1,#WM_MENUDISABLED,\2
  1386.                 ENDM
  1387.  
  1388. ItemChecked     MACRO   ; wobj, id
  1389.                 DOMETHOD \1,#WM_ITEMCHECED,\2
  1390.                 ENDM
  1391.  
  1392. GetAppMsg       MACRO   ; wobj
  1393.                 DOMETHOD \1,#WM_GETAPPMSG
  1394.                 ENDM
  1395.  
  1396. AddUpdate       MACRO   ; wobj, id, target, map
  1397.                 DOMETHOD \1,#WM_ADDUPDATE,\2,\3,\4
  1398.                 ENDM
  1399.  
  1400. ******************************************************************************
  1401. *       Commodity class method macros.
  1402. ******************************************************************************
  1403.  
  1404. AddHotKey       MACRO   ; broker, desc, id, flags
  1405.                 DOMETHOD \1,#CM_ADDHOTKEY,\2,\3,\4
  1406.                 ENDM
  1407.  
  1408. RemHotKey       MACRO   ; broker, id
  1409.                 DOMETHOD \1,#CM_REMHOTKEY,\2
  1410.                 ENDM
  1411.  
  1412. DisableHotKey   MACRO   ; broker, id
  1413.                 DOMETHOD \1,#CM_DISABLEHOTKEY,\2
  1414.                 ENDM
  1415.  
  1416. EnableHotKey    MACRO   ; broker, id
  1417.                 DOMETHOD \1,#CM_ENABLEHOTKEY,\2
  1418.                 ENDM
  1419.  
  1420. EnableBroker    MACRO   ; broker
  1421.                 DOMETHOD \1,#CM_ENABLEBROKER
  1422.                 ENDM
  1423.  
  1424. DisableBroker   MACRO   ; broker
  1425.                 DOMETHOD \1,#CM_DISABLEBROKER
  1426.                 ENDM
  1427.  
  1428. MsgInfo         MACRO   ; broker, type, id, data
  1429.                 DOMETHOD \1,#CM_MSGINFO,\2,\3,\4
  1430.                 ENDM
  1431.  
  1432. ******************************************************************************
  1433. *       FileReq class method macros.
  1434. ******************************************************************************
  1435.  
  1436. DoRequest       MACRO   ; object
  1437.                 DOMETHOD \1,#FRM_DOREQUEST
  1438.                 ENDM
  1439.  
  1440.                 ENDC ; LIBRARIES_BGUI_MACROS_I
  1441.